package com.ruoyi.report.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 商品推荐表
 * @TableName walmart_assortment_recommendations_report
 */
@TableName(value ="walmart_assortment_recommendations_report")
@Data
public class WalmartAssortmentRecommendationsReport implements Serializable {


    @TableId(value = "id", type = IdType.AUTO)  // 设置主键和主键策略
    private Long id;
    /**
     * 商品推荐唯一ID
     */
    @TableField(value = "item_recommendation_unique_id")
    private String itemRecommendationUniqueId;

    /**
     * 商品名称
     */
    @TableField(value = "item_name")
    private String itemName;

    /**
     * 品牌
     */
    @TableField(value = "brand")
    private String brand;

    /**
     * 类别
     */
    @TableField(value = "category")
    private String category;

    /**
     * 价格货币
     */
    @TableField(value = "price_currency")
    private String priceCurrency;

    /**
     * 商品可用状态
     */
    @TableField(value = "item_availability_status")
    private String itemAvailabilityStatus;

    /**
     * 全球贸易项目编号(GTIN)
     */
    @TableField(value = "gtin")
    private String gtin;

    /**
     * UPC编号
     */
    @TableField(value = "upc")
    private String upc;

    /**
     * 国际标准书号(ISBN)
     */
    @TableField(value = "isbn")
    private String isbn;

    /**
     * 欧洲商品编码(EAN)
     */
    @TableField(value = "ean")
    private String ean;

    /**
     * 沃尔玛商品ID
     */
    @TableField(value = "walmart_item_id")
    private String walmartItemId;

    /**
     * 沃尔玛商品URL
     */
    @TableField(value = "walmart_url")
    private String walmartUrl;

    /**
     * 沃尔玛商品价格
     */
    @TableField(value = "walmart_item_price")
    private BigDecimal walmartItemPrice;

    /**
     * 沃尔玛运费
     */
    @TableField(value = "walmart_shipping_price")
    private BigDecimal walmartShippingPrice;

    /**
     * 沃尔玛商品总价格
     */
    @TableField(value = "walmart_total_price")
    private BigDecimal walmartTotalPrice;

    /**
     * 沃尔玛Fulfillment Service(WFS)指示器
     */
    @TableField(value = "wfs_indicator")
    private String wfsIndicator;

    /**
     * 竞争对手商品ID
     */
    @TableField(value = "competitor_item_id")
    private String competitorItemId;

    /**
     * 竞争对手商品URL
     */
    @TableField(value = "competitor_url")
    private String competitorUrl;

    /**
     * 竞争对手商品价格
     */
    @TableField(value = "competitor_item_price")
    private BigDecimal competitorItemPrice;

    /**
     * 竞争对手运费
     */
    @TableField(value = "competitor_shipping_price")
    private BigDecimal competitorShippingPrice;

    /**
     * 竞争对手商品总价格
     */
    @TableField(value = "competitor_total_price")
    private BigDecimal competitorTotalPrice;

    /**
     * 潜在销售额
     */
    @TableField(value = "potential_sales")
    private String potentialSales;

    /**
     * 购物趋势
     */
    @TableField(value = "shopping_trends")
    private String shoppingTrends;

    /**
     * 商品类型
     */
    @TableField(value = "product_type")
    private String productType;

    /**
     * 潜在销售排名
     */
    @TableField(value = "potential_sales_rank")
    private Integer potentialSalesRank;

    /**
     * 需求销售趋势
     */
    @TableField(value = "demand_sales_trends")
    private String demandSalesTrends;

    /**
     * 每周需求趋势
     */
    @TableField(value = "weekly_demand_trends")
    private String weeklyDemandTrends;

    /**
     * 每月需求趋势
     */
    @TableField(value = "monthly_demand_trends")
    private String monthlyDemandTrends;

    /**
     * 优惠数量
     */
    @TableField(value = "no_of_offers")
    private Integer noOfOffers;

    /**
     * 搜索关键词
     */
    @TableField(value = "search_keywords")
    private String searchKeywords;

    /**
     * 每周价格趋势
     */
    @TableField(value = "weekly_price_trends")
    private String weeklyPriceTrends;

    /**
     * 每月价格趋势
     */
    @TableField(value = "monthly_price_trends")
    private String monthlyPriceTrends;

    /**
     * 商品是否免运费
     */
    @TableField(value = "item_free_shipping")
    private String itemFreeShipping;

    /**
     * 评分
     */
    @TableField(value = "ratings")
    private BigDecimal ratings;

    /**
     * 评分数量
     */
    @TableField(value = "no_of_ratings")
    private Integer noOfRatings;

    /**
     * 主变体商品ID
     */
    @TableField(value = "primary_variant_item_id")
    private String primaryVariantItemId;

    /**
     * 变体类型
     */
    @TableField(value = "variant_type")
    private String variantType;

    /**
     * 唯一请求id
     */
    @TableField(value = "request_id")
    private String requestId;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        WalmartAssortmentRecommendationsReport other = (WalmartAssortmentRecommendationsReport) that;
        return (this.getItemRecommendationUniqueId() == null ? other.getItemRecommendationUniqueId() == null : this.getItemRecommendationUniqueId().equals(other.getItemRecommendationUniqueId()))
            && (this.getItemName() == null ? other.getItemName() == null : this.getItemName().equals(other.getItemName()))
            && (this.getBrand() == null ? other.getBrand() == null : this.getBrand().equals(other.getBrand()))
            && (this.getCategory() == null ? other.getCategory() == null : this.getCategory().equals(other.getCategory()))
            && (this.getPriceCurrency() == null ? other.getPriceCurrency() == null : this.getPriceCurrency().equals(other.getPriceCurrency()))
            && (this.getItemAvailabilityStatus() == null ? other.getItemAvailabilityStatus() == null : this.getItemAvailabilityStatus().equals(other.getItemAvailabilityStatus()))
            && (this.getGtin() == null ? other.getGtin() == null : this.getGtin().equals(other.getGtin()))
            && (this.getUpc() == null ? other.getUpc() == null : this.getUpc().equals(other.getUpc()))
            && (this.getIsbn() == null ? other.getIsbn() == null : this.getIsbn().equals(other.getIsbn()))
            && (this.getEan() == null ? other.getEan() == null : this.getEan().equals(other.getEan()))
            && (this.getWalmartItemId() == null ? other.getWalmartItemId() == null : this.getWalmartItemId().equals(other.getWalmartItemId()))
            && (this.getWalmartUrl() == null ? other.getWalmartUrl() == null : this.getWalmartUrl().equals(other.getWalmartUrl()))
            && (this.getWalmartItemPrice() == null ? other.getWalmartItemPrice() == null : this.getWalmartItemPrice().equals(other.getWalmartItemPrice()))
            && (this.getWalmartShippingPrice() == null ? other.getWalmartShippingPrice() == null : this.getWalmartShippingPrice().equals(other.getWalmartShippingPrice()))
            && (this.getWalmartTotalPrice() == null ? other.getWalmartTotalPrice() == null : this.getWalmartTotalPrice().equals(other.getWalmartTotalPrice()))
            && (this.getWfsIndicator() == null ? other.getWfsIndicator() == null : this.getWfsIndicator().equals(other.getWfsIndicator()))
            && (this.getCompetitorItemId() == null ? other.getCompetitorItemId() == null : this.getCompetitorItemId().equals(other.getCompetitorItemId()))
            && (this.getCompetitorUrl() == null ? other.getCompetitorUrl() == null : this.getCompetitorUrl().equals(other.getCompetitorUrl()))
            && (this.getCompetitorItemPrice() == null ? other.getCompetitorItemPrice() == null : this.getCompetitorItemPrice().equals(other.getCompetitorItemPrice()))
            && (this.getCompetitorShippingPrice() == null ? other.getCompetitorShippingPrice() == null : this.getCompetitorShippingPrice().equals(other.getCompetitorShippingPrice()))
            && (this.getCompetitorTotalPrice() == null ? other.getCompetitorTotalPrice() == null : this.getCompetitorTotalPrice().equals(other.getCompetitorTotalPrice()))
            && (this.getPotentialSales() == null ? other.getPotentialSales() == null : this.getPotentialSales().equals(other.getPotentialSales()))
            && (this.getShoppingTrends() == null ? other.getShoppingTrends() == null : this.getShoppingTrends().equals(other.getShoppingTrends()))
            && (this.getProductType() == null ? other.getProductType() == null : this.getProductType().equals(other.getProductType()))
            && (this.getPotentialSalesRank() == null ? other.getPotentialSalesRank() == null : this.getPotentialSalesRank().equals(other.getPotentialSalesRank()))
            && (this.getDemandSalesTrends() == null ? other.getDemandSalesTrends() == null : this.getDemandSalesTrends().equals(other.getDemandSalesTrends()))
            && (this.getWeeklyDemandTrends() == null ? other.getWeeklyDemandTrends() == null : this.getWeeklyDemandTrends().equals(other.getWeeklyDemandTrends()))
            && (this.getMonthlyDemandTrends() == null ? other.getMonthlyDemandTrends() == null : this.getMonthlyDemandTrends().equals(other.getMonthlyDemandTrends()))
            && (this.getNoOfOffers() == null ? other.getNoOfOffers() == null : this.getNoOfOffers().equals(other.getNoOfOffers()))
            && (this.getSearchKeywords() == null ? other.getSearchKeywords() == null : this.getSearchKeywords().equals(other.getSearchKeywords()))
            && (this.getWeeklyPriceTrends() == null ? other.getWeeklyPriceTrends() == null : this.getWeeklyPriceTrends().equals(other.getWeeklyPriceTrends()))
            && (this.getMonthlyPriceTrends() == null ? other.getMonthlyPriceTrends() == null : this.getMonthlyPriceTrends().equals(other.getMonthlyPriceTrends()))
            && (this.getItemFreeShipping() == null ? other.getItemFreeShipping() == null : this.getItemFreeShipping().equals(other.getItemFreeShipping()))
            && (this.getRatings() == null ? other.getRatings() == null : this.getRatings().equals(other.getRatings()))
            && (this.getNoOfRatings() == null ? other.getNoOfRatings() == null : this.getNoOfRatings().equals(other.getNoOfRatings()))
            && (this.getPrimaryVariantItemId() == null ? other.getPrimaryVariantItemId() == null : this.getPrimaryVariantItemId().equals(other.getPrimaryVariantItemId()))
            && (this.getVariantType() == null ? other.getVariantType() == null : this.getVariantType().equals(other.getVariantType()))
            && (this.getRequestId() == null ? other.getRequestId() == null : this.getRequestId().equals(other.getRequestId()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getItemRecommendationUniqueId() == null) ? 0 : getItemRecommendationUniqueId().hashCode());
        result = prime * result + ((getItemName() == null) ? 0 : getItemName().hashCode());
        result = prime * result + ((getBrand() == null) ? 0 : getBrand().hashCode());
        result = prime * result + ((getCategory() == null) ? 0 : getCategory().hashCode());
        result = prime * result + ((getPriceCurrency() == null) ? 0 : getPriceCurrency().hashCode());
        result = prime * result + ((getItemAvailabilityStatus() == null) ? 0 : getItemAvailabilityStatus().hashCode());
        result = prime * result + ((getGtin() == null) ? 0 : getGtin().hashCode());
        result = prime * result + ((getUpc() == null) ? 0 : getUpc().hashCode());
        result = prime * result + ((getIsbn() == null) ? 0 : getIsbn().hashCode());
        result = prime * result + ((getEan() == null) ? 0 : getEan().hashCode());
        result = prime * result + ((getWalmartItemId() == null) ? 0 : getWalmartItemId().hashCode());
        result = prime * result + ((getWalmartUrl() == null) ? 0 : getWalmartUrl().hashCode());
        result = prime * result + ((getWalmartItemPrice() == null) ? 0 : getWalmartItemPrice().hashCode());
        result = prime * result + ((getWalmartShippingPrice() == null) ? 0 : getWalmartShippingPrice().hashCode());
        result = prime * result + ((getWalmartTotalPrice() == null) ? 0 : getWalmartTotalPrice().hashCode());
        result = prime * result + ((getWfsIndicator() == null) ? 0 : getWfsIndicator().hashCode());
        result = prime * result + ((getCompetitorItemId() == null) ? 0 : getCompetitorItemId().hashCode());
        result = prime * result + ((getCompetitorUrl() == null) ? 0 : getCompetitorUrl().hashCode());
        result = prime * result + ((getCompetitorItemPrice() == null) ? 0 : getCompetitorItemPrice().hashCode());
        result = prime * result + ((getCompetitorShippingPrice() == null) ? 0 : getCompetitorShippingPrice().hashCode());
        result = prime * result + ((getCompetitorTotalPrice() == null) ? 0 : getCompetitorTotalPrice().hashCode());
        result = prime * result + ((getPotentialSales() == null) ? 0 : getPotentialSales().hashCode());
        result = prime * result + ((getShoppingTrends() == null) ? 0 : getShoppingTrends().hashCode());
        result = prime * result + ((getProductType() == null) ? 0 : getProductType().hashCode());
        result = prime * result + ((getPotentialSalesRank() == null) ? 0 : getPotentialSalesRank().hashCode());
        result = prime * result + ((getDemandSalesTrends() == null) ? 0 : getDemandSalesTrends().hashCode());
        result = prime * result + ((getWeeklyDemandTrends() == null) ? 0 : getWeeklyDemandTrends().hashCode());
        result = prime * result + ((getMonthlyDemandTrends() == null) ? 0 : getMonthlyDemandTrends().hashCode());
        result = prime * result + ((getNoOfOffers() == null) ? 0 : getNoOfOffers().hashCode());
        result = prime * result + ((getSearchKeywords() == null) ? 0 : getSearchKeywords().hashCode());
        result = prime * result + ((getWeeklyPriceTrends() == null) ? 0 : getWeeklyPriceTrends().hashCode());
        result = prime * result + ((getMonthlyPriceTrends() == null) ? 0 : getMonthlyPriceTrends().hashCode());
        result = prime * result + ((getItemFreeShipping() == null) ? 0 : getItemFreeShipping().hashCode());
        result = prime * result + ((getRatings() == null) ? 0 : getRatings().hashCode());
        result = prime * result + ((getNoOfRatings() == null) ? 0 : getNoOfRatings().hashCode());
        result = prime * result + ((getPrimaryVariantItemId() == null) ? 0 : getPrimaryVariantItemId().hashCode());
        result = prime * result + ((getVariantType() == null) ? 0 : getVariantType().hashCode());
        result = prime * result + ((getRequestId() == null) ? 0 : getRequestId().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", itemRecommendationUniqueId=").append(itemRecommendationUniqueId);
        sb.append(", itemName=").append(itemName);
        sb.append(", brand=").append(brand);
        sb.append(", category=").append(category);
        sb.append(", priceCurrency=").append(priceCurrency);
        sb.append(", itemAvailabilityStatus=").append(itemAvailabilityStatus);
        sb.append(", gtin=").append(gtin);
        sb.append(", upc=").append(upc);
        sb.append(", isbn=").append(isbn);
        sb.append(", ean=").append(ean);
        sb.append(", walmartItemId=").append(walmartItemId);
        sb.append(", walmartUrl=").append(walmartUrl);
        sb.append(", walmartItemPrice=").append(walmartItemPrice);
        sb.append(", walmartShippingPrice=").append(walmartShippingPrice);
        sb.append(", walmartTotalPrice=").append(walmartTotalPrice);
        sb.append(", wfsIndicator=").append(wfsIndicator);
        sb.append(", competitorItemId=").append(competitorItemId);
        sb.append(", competitorUrl=").append(competitorUrl);
        sb.append(", competitorItemPrice=").append(competitorItemPrice);
        sb.append(", competitorShippingPrice=").append(competitorShippingPrice);
        sb.append(", competitorTotalPrice=").append(competitorTotalPrice);
        sb.append(", potentialSales=").append(potentialSales);
        sb.append(", shoppingTrends=").append(shoppingTrends);
        sb.append(", productType=").append(productType);
        sb.append(", potentialSalesRank=").append(potentialSalesRank);
        sb.append(", demandSalesTrends=").append(demandSalesTrends);
        sb.append(", weeklyDemandTrends=").append(weeklyDemandTrends);
        sb.append(", monthlyDemandTrends=").append(monthlyDemandTrends);
        sb.append(", noOfOffers=").append(noOfOffers);
        sb.append(", searchKeywords=").append(searchKeywords);
        sb.append(", weeklyPriceTrends=").append(weeklyPriceTrends);
        sb.append(", monthlyPriceTrends=").append(monthlyPriceTrends);
        sb.append(", itemFreeShipping=").append(itemFreeShipping);
        sb.append(", ratings=").append(ratings);
        sb.append(", noOfRatings=").append(noOfRatings);
        sb.append(", primaryVariantItemId=").append(primaryVariantItemId);
        sb.append(", variantType=").append(variantType);
        sb.append(", requestId=").append(requestId);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}